#ifndef SHADER
#define SHADER

#include <GL/glew.h>
#include <vector>

struct slider
{
	int nbcanal;
	float minvalues[4];
	float maxvalues[4];
	float defaultvalues[4];
	const char *paramName;
	int decimals;
};

class Shader
{
	public:
		Shader() {};
		virtual ~Shader() {};

		virtual void Enable() =0;
		virtual void Disable() =0 ;
		virtual void SetUniform(const char *name, float x=0.0, float y=0.0, float z=0.0, float w=0.0) =0;
		virtual void SetUniform(const char *name,int x=0,int y=0,int z=0,int w=0) =0;
		virtual void SetUniform(const char *name,float *v)  =0;

		std::vector<slider> sliders;

};

#endif
